Example: Clipboard ⇄ Vim Loop Workflow

Goal: Extract High-Quality Information from YouTube Videos

The Challenge:

YouTube videos contain valuable information but watching them is time-consuming. This workflow lets you extract and refine key insights 2-3x faster than traditional note-taking while watching.

Step 1: Get Transcript

Go to NotebookLM and:

  1. Create a new notebook
  2. Add the YouTube link as a source
  3. NotebookLM will automatically extract and process the video transcript
  4. Ask it to summarize key points or extract specific information

Step 2: Raw LLM Output

What you get from NotebookLM after processing the video:

`AI Snake Oil: Hype and Reality

Here is the corrected transcript:

{ NEW YOUTUBE SOURCE 

Excerpts from the transcript of the video "AI Snake Oil: What Artificial Intelligence Can Do, What It Can't, and How to Tell the Difference" uploaded on the YouTube channel "MIT Shaping the Future of Work Initiative":

[1] ASU OZDAGLAR: Maybe we should get started, right? Hi, everyone. It's a pleasure to welcome you all to tonight's talk with Professor Arvind Narayanan. The Schwarzman College of Computing is honored to co-host this event with MIT's Shaping the Future of Work Initiative...
→ See full NotebookLM output (Appendix 1)

In a workflow, at step 2 of "Step 2: Raw LLM Output" one hits a limit: the AI apps are not really well-made for text editing. At this point, it's great to have a sharp knife: your keyboard.

If your keyboard isn't sharp, you need to learn at least how to quit vim.

Step 3: Vim Commands Used

# Copy from clipboard to vim
pbpaste | vim -

# In vim, refine the content:
# - Split long sentences with Enter
# - Reorder with dd and p
# - Delete fluff with dw or dd
# - Use macros for repetitive edits

# Copy refined content back to clipboard
:%w !pbcopy

Step 4: Codebuff-Unintended-Summary

After Vim editing, you can iterate with ChatGPT until you have accumulated something to be worthy of saving.

When you have it, you can place it into an HTML template.

I'm using codebuff to generate HTML. I initially created this page with a in-lined command:

<!-- Add a link to an example HTML file. -->

When prompted to "Create an example file and add it to the commented line", `codebuff` helpfully provides a starting point for a 1-pager:

→ View example of codebuff-unintended-summary

I only asked for a file, but I forgot saying "placeholder" so it took more steps than I wanted. It takes experience to get used to working with LLMs. Take every chance. Don't underestimate how far you can go.

Step 5: What to do with an HTML file?

Your AI agent can fill in the template from Step 4, or you can do it easily in vim.

Share the information! Once you have an HTML file, it's trivial to publish it on val.town.

Publishing on Val Town

  1. Go to val.town
  2. Create a new HTTP val
  3. Copy your HTML content into the val
  4. Set up routing with Hono (like in main.tsx)
  5. Your content is now live and shareable!

Example val structure:

import { Hono } from "npm:hono";
const app = new Hono();

app.get("/", (c) => {
  return c.html(`...your content...`);
});

export default app.fetch;

For the val.town history navigators... this entire workflow demonstrates how to efficiently extract, refine, and publish information using the clipboard-vim loop technique combined with modern AI tools.

Key Benefits